﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Ingebet.Model.Domain;

using Ingebet.Model.Domain;

using Ingebet.Repository.Contract;

namespace Ingebet.Model
{
    public class RencontreModel : BaseModel<Rencontre , IRencontreRepository , int>
    {
        private ISportRepository _repoSport = new SportRepository();

        public RencontreModel()
            : base(new RencontreRepository())
        {
        }

        public IList<VueMatch> GetAllVueRencontre()
        {
            List<VueMatch> result = new List<VueMatch>();
            var lstVue = _repository.GetAll();
            foreach (var item in lstVue)
            {
                result.Add(new VueMatch()
                {
                    RencontreID = item.Id ,
                    DateMatch = item.DateRencontre ,
                    Competition = item.CompetitionMatch.Nom ,
                    Equipe1 = item.Equipe1.Nom ,
                    Equipe2 = item.Equipe2.Nom ,
                    CoteGain = item.CoteMatch.CoteGain ,
                    CoteEgalite = item.CoteMatch.CoteEgalite ,
                    CotePerte = item.CoteMatch.CotePerte
                });
            }
            return result;
        }

        public IList<VueMatch> GetAllVueRencontreAvecResult()
        {
            IList<VueMatch> result = new List<VueMatch>();
            var lstVue = _repository.GetRencontreAvecResult();
            foreach (var item in lstVue)
            {
                result.Add(new VueMatch()
                {
                    RencontreID = item.Id ,
                    DateMatch = item.DateRencontre ,
                    Competition = item.CompetitionMatch.Nom ,
                    Equipe1 = item.Equipe1.Nom ,
                    Equipe2 = item.Equipe2.Nom ,
                    CoteGain = item.CoteMatch.CoteGain ,
                    CoteEgalite = item.CoteMatch.CoteEgalite ,
                    CotePerte = item.CoteMatch.CotePerte ,
                    Score = item.Score
                });
            }
            return result;
        }

        public object GetAllVueRencontreSansResult()
        {
            IList<VueMatch> result = new List<VueMatch>();
            var lstVue = _repository.GetRencontreSansResult();
            foreach (var item in lstVue)
            {
                result.Add(new VueMatch()
                {
                    RencontreID = item.Id ,
                    DateMatch = item.DateRencontre ,
                    Competition = item.CompetitionMatch.Nom ,
                    Equipe1 = item.Equipe1.Nom ,
                    Equipe2 = item.Equipe2.Nom ,
                    CoteGain = item.CoteMatch.CoteGain ,
                    CoteEgalite = item.CoteMatch.CoteEgalite ,
                    CotePerte = item.CoteMatch.CotePerte ,
                    Score = item.Score
                });
            }
            return result;
        }

        //public IList<VueMatch> GetRencontreBySport(int sportID)
        //{
        //    List<VueMatch> result = new List<VueMatch>();
        //    var sport = _repoSport.GetByID(sportID);
        //    var lstVue = _repository.GetRencontreBySport(sport);
        //    foreach (var item in lstVue)
        //    {
        //        result.Add(new VueMatch()
        //        {
        //            RencontreID = item.Id ,
        //            DateMatch = item.DateRencontre ,
        //            Competition = item.CompetitionMatch.Nom ,
        //            Equipe1 = item.Equipe1.Nom ,
        //            Equipe2 = item.Equipe2.Nom ,
        //            CoteGain = item.CoteMatch.CoteGain ,
        //            CoteEgalite = item.CoteMatch.CoteEgalite ,
        //            CotePerte = item.CoteMatch.CotePerte
        //        });
        //    }
        //    return result;
        //}
    }
}